//
//  YFStatusCell.swift
//  YFSwiftWeibo
//
//  Created by tsaievan on 2017/9/7.
//  Copyright © 2017年 tsaievan. All rights reserved.
//

import UIKit

class YFStatusCell: UITableViewCell {
    
    var viewModel: YFWeiboStatusViewModel? {
        didSet {
            statusLabel?.text = viewModel?.status.text
            nicknameLabel.text = viewModel?.status.user?.screen_name
            levelImageView.image = viewModel?.memberIcon
            titleImageView.image = viewModel?.titleIcon
            iconImageView.yf_setImage(with: viewModel?.status.user?.profile_image_url, placeholderImage: #imageLiteral(resourceName: "avatar_default_big"), isAvartar: true)
            toolBar.viewModel = viewModel
            pictureView.viewModel = viewModel
            
            ///< 做一个测试, 当图片数量大于4时, 移除多余的元素, 使数组中保持只有4个
            //            if (viewModel?.status.pic_urls?.count)! > 4 {
            //                var array = viewModel?.status.pic_urls
            //                array?.removeSubrange((array?.startIndex)! + 4 ..< (array?.endIndex)!)
            //                pictureView.urls = array
            //            }else {
            //                pictureView.urls = viewModel?.status.pic_urls
            //            }
            
            ///< 这里就利用新的属性, 返回图片模型
            pictureView.urls = viewModel?.picUrls
            
            ///< 因为Label是可选的, 所以有这个label就设置, 没有就不设置
            retweetedLabel?.text = viewModel?.retweetedText
            sourceLabel.text = viewModel?.status.source
            
            print("微博来源\(viewModel?.status.source)")
        }
    }
    
    /// 头像
    @IBOutlet weak var iconImageView: UIImageView!
    /// 昵称
    @IBOutlet weak var nicknameLabel: UILabel!
    /// 等级
    @IBOutlet weak var levelImageView: UIImageView!
    /// 时间
    @IBOutlet weak var timeLabel: UILabel!
    /// 来源
    @IBOutlet weak var sourceLabel: UILabel!
    /// 头衔
    @IBOutlet weak var titleImageView: UIImageView!
    /// 正文
    @IBOutlet weak var statusLabel: UILabel!
    /**
     * 这里需要注意的是:
     * 当出现什么不支持kvc的闪退时, 应该首先怀疑连线连错了
     * 我这里之前将线连到file's owner上去了
     * 应该连到status cell上
     */
    /// 底部工具栏
    @IBOutlet weak var toolBar: YFStatusToolBar!
    /// 配图视图
    @IBOutlet weak var pictureView: YFStatusPictureView!
    /// label和图片之间的约束的高度
    //    @IBOutlet weak var marginCons: NSLayoutConstraint! ///< 取消顶部的margin
    /**
     * 从xib加载cell一定要注意一个问题就是关联本类
     * 但是千万不能关联错了
     * file's owner要关联
     * cell要关联
     * contentView千万不能关联了
     * 关联了之后你设置的约束就通通失效了
     */
    ///< 一般拖线了之后都默认是!, 但是这里因为复用了cell的xib
    ///< 所以, 微博不一定就有这个label, 原创微博就没有这个label
    ///< 所以这里应该用可选
    @IBOutlet weak var retweetedLabel: UILabel?
    
    override func awakeFromNib() {
        super.awakeFromNib()
        ///< 打开离屏渲染
        self.layer.drawsAsynchronously = true
        ///< 栅格化处理
        self.layer.shouldRasterize = true
        ///< 栅格化处理需要指定分辨率
        self.layer.rasterizationScale = UIScreen.main.scale
        
    }
}
